import axios from "axios";
import {tokenStore} from "@/store/index.js";
import router from "@/router/index.js";
import {ElMessage} from "element-plus";

const service = axios.create({
    baseURL : 'http://localhost:9001',       //请求后台的地址前缀
    timeout:300000                              //请求超时时间
})

//请求拦截器
service.interceptors.request.use(request=>{
    //请求发送前的回调
    //统一的对每一次请求做一些操作
    //每一个请求前将token传过去
    request.headers.token= tokenStore().token
    return request
},error=>{
    return Promise.reject(error)
    }
)
// 响应拦截器
service.interceptors.response.use(response=>{
    if (response.headers.token) {
        tokenStore().update(response.headers.token)
    }
    return response;
},error=>{
    if (!error.response) return Promise.reject(error);
    if (error.response.status === 404) {
        ElMessage({
            message:'页面找不到',
            type:'error',
            offset:250
        })
    } else if (error.response.status === 403) {
        ElMessage({
            message:error.response.data.msg
        })
    } else if(error.response.status === 401) {
        // 用户没有登录，跳转到登录页面
        router.push("/login")
    } else {
        // 响应出错回调
        return Promise.reject(error);
    }
})
export default service